package org.alex.mqtt.common.bus;

/**
 * 认证
 * @author : alex
 */
public interface Authenticator {

    /**
     * 登录
     */
    boolean login(String clientId, String userName, byte[] password);

    /**
     * 是否属于黑名单
     */
    boolean onBlackList(String clientId, String remoteIpAddress);

    /**
     * clientId有效校验
     */
    boolean clientIdVerify(String clientId);

    /**
     * topic订阅校验
     */
    boolean subscribeVerify(String clientId, String topic);
}
